// pages/me/me.js
var app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    cityCode:'',  //记录当前城市码
    openid:'',    //记录当前用户openid
    resGetFileObj:'',//记录城市信息集合

    //展示内容分类 
    typeList:['发布信息','已发布信息'],
    //信息分类列表
    typeIndex:1,

    //信息类型
    infoTypeList:[],
    infoTypeIndex:0,

    //我发布的信息列表
    meInfoList:[],  
    //修改信息的临时容器
    //editData:[],

  },



  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var t = this;
    wx.showLoading({
      title: '数据加载中...',
    })
    app.getOpenid(function(openid){   //加载openid
      if(!/^err.*/.test(openid) && openid.length > 25 && openid.length < 32){
        var cityCode = app.getCityCode(); //加载城市信息
        t.setData({
          infoTypeList:app.globalData.infoTypeList,   //初始化类型列表
          openid:openid,   //记录当前openid
          cityCode:cityCode
        })
        wx.hideLoading();
        t.init();
      }else{
        wx.showToast({
          title: '获取openid失败！',
          icon:'error',
          complete(){
            setTimeout(function(){
              wx.switchTab({
                url: '/pages/index_info/index_info',
              })
            },1000)
          }
        })
      }
    },1)
  },

  //编辑信息返回按钮事件
  editBack(){
    this.setData({
      editData:[],
      typeIndex:1
    })
  },



  infoDel(o){
    var t = this;
    var tmpN = Math.ceil(Math.random()*10);
    app.C(tmpN);
    wx.showModal({
      title:'确认删除?',
      //content:'确认删除?',
      cancelColor: 'cancelColor',
      editable:true,
      placeholderText:'请输入：'+tmpN,
      success(res){
        app.C(res);
        if(res.confirm && res.content == tmpN){
          var resGetFileObj = t.data.resGetFileObj;
          if(!o.currentTarget.dataset.id || !t.data.cityCode){
            wx.showToast({
              title: '缺少必要参数！',
            })
            return;
          }
          wx.showLoading({
            title: '处理中...',
          })
          var data = {
            type:'infoDel',
            id:o.currentTarget.dataset.id,
            cityCode:t.data.cityCode.code
          }
          app.Ajax(data,function(res){
            wx.hideLoading();
            if(res.data == 'ok'){
              var tmpIndex = -1;
              for(var i=0;i<resGetFileObj.length;i++){
                if(resGetFileObj[i].cityCode == t.data.cityCode.code){
                  for(var j=0;j<resGetFileObj[i].list.length;j++){
                    if(resGetFileObj[i].list[j][0] == o.currentTarget.dataset.id){
                      resGetFileObj[i].list.splice(j,1);
                    }
                  }
                  app.setCityListSetToFile(resGetFileObj,function(){
                    wx.showToast({
                      title: '操作成功！',
                    })
                    t.init();
                  });
                }
              }
            }
          },app.globalData.afterInterface,'')
        }else{
          if(res.confirm){
            wx.showToast({
              title: '输入错误！',
              icon:'error'
            })
          }
        }
      }
    })
  },



  init(){
    var t = this;
    //加载当前城市信息
    app.getCityListSetFromFile(function(cityListSet){
      if(cityListSet != 'err'){
        var cityCode = app.getCityCode().code;
        var tmpCityInfoListIndex = -1;
        for(var i=0;i<cityListSet.length;i++){
          if(cityListSet[i].cityCode == cityCode){
            tmpCityInfoListIndex = i;   //记录当前城市数据所在的下标
          }
        }
        //本地缓存有当前城市数据
        if(tmpCityInfoListIndex >= 0){
          var tmpData = cityListSet[tmpCityInfoListIndex].list;
          var meData = [];
          for(var i=0;i<tmpData.length;i++){
            if(tmpData[i][8] == t.data.openid){
              meData.push(tmpData[i]);
            }
          }
          //筛选城市数据
          t.setData({
            resGetFileObj:cityListSet,
            meInfoList:meData
          })
          //app.C(meData);
        }
      }
    })
  },






  //信息分类切换
  infoTypeChange(e){
    var t = this;
    t.setData({
      infoTypeIndex:e.detail.value
    })
  },

  //发布信息提交 
  submit(e){
    var t = this;
    var timeoutCout = 0;
    var type = t.data.infoTypeIndex;
    if(type == 0){
      wx.showToast({
        title: '请选择类型！',
        icon:'error'
      })
      return;
    }
    var title = e.detail.value.title;
    if(app.checkChar(title) == 'err' || title.length > 20){
      wx.showToast({
        title: '标题超20个字符',
        icon:'error'
      })
      return;
    }
    var content = e.detail.value.content;
    if(app.checkChar(content) == 'err'){
      return;
    }
    if(app.checkChar(content) == 'err' || content.length > 80){
      wx.showToast({
        title: '内容超80个字符',
        icon:'error'
      })
      return;
    }
    var concat = e.detail.value.concat;
    if(app.checkChar(concat) == 'err'){
      return;
    }
    if(app.checkChar(concat) == 'err' || concat.length > 8){
      wx.showToast({
        title: '联系人超8个字符',
        icon:'error'
      })
      return;
    }
    var phone = e.detail.value.phone;
    if(/[^0-9]/.test(phone)){
      wx.showToast({
        title: '电话输入有误！',
        icon:'error',
      })
      return;
    }
    if(app.checkChar(phone) == 'err' || phone.length > 12){
      wx.showToast({
        title: '电话超12个字符',
        icon:'error'
      })
      return;
    }
    if(!title || !content || !concat || !phone){
      wx.showToast({
        title: '内容不得为空！',
        icon:'error',
      })
      return;
    }
    var cityCode = t.data.cityCode.code;
    var data = {
      type:'addInfo',
      title:title,
      content:content,
      concat:concat,
      phone:phone,
      infoType:t.data.infoTypeIndex,
      cityCode:cityCode,
      openid:t.data.openid
    }

    t._sendRequest(data,timeoutCout);  
  },
  
  
  _sendRequest(data,timeoutCout){
    var t = this;
    wx.showLoading({
      title: '处理中......',
    })
    app.Ajax(data,function(res){
      app.C(res);
      if(res.data && res.data.stat== 'ok'){
        wx.hideLoading();
        wx.hideLoading();
        wx.showToast({
          title: '操作成功！',
        })
        t.setData({
          typeIndex:1
        })
        app.getCityListSetFromFile(function(resInfo){
          //app.C(resInfo);
          if(resInfo && typeof(resInfo)=='object' && resInfo != 'err'){
            //如果有本地缓存
            var cityCode = t.data.cityCode.code;
            for(var i=0;i<resInfo.length;i++){
              if(cityCode == resInfo[i].cityCode){
                resInfo[i].list.push(res.data.data);
              }
            }   
            //保存数据到缓存
            app.setCityListSetToFile(resInfo,function(){
              //app.C(resInfo);
              t.init();
            })
          }
          
        })

      }else if(res.data == 'wait'){
        timeoutCout += 1;
        if(timeoutCout > 5){
          wx.showToast({
            title: '服务器繁忙！',
            icon:'error'
          })
        }else{
          var sil = setTimeout(function(){
            t._sendRequest(data,timeoutCout); 
          },1500);
        }
        
      }else{
        wx.hideLoading();
        wx.showToast({
          title: '发布条数超限！',
          icon:'error'
        })
      }
    },app.globalData.afterInterface)
  },
  
  


  //分类切换
  typeChange(e){
    var t = this;
    t.setData({
      typeIndex:e.detail.value
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },


  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})